﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
using System.Web.Security;
using System.Web.SessionState;
using System.Web.Http;
using StackExchange.Profiling;
using Knight.ObjectFactory;
using Knight.Models.Services;
using Knight.Interface;
using WebApp.Infrastructure;

namespace WebApp
{
    public class Global : HttpApplication
    {
        void Application_Start(object sender, EventArgs e)
        {
            // 在应用程序启动时运行的代码
            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BindObjects();
            MiniProfiler.Settings.Results_Authorize = Request =>
            {

                return false;
            };
            StackExchange.Profiling.EntityFramework6.MiniProfilerEF6.Initialize();
        }
        //对象绑定
        private void BindObjects()
        {         
            //Service
            ObjectFactory.Bind<IDefaultService>(() => new DefaultService());                      
        }
        protected void Application_BeginRequest()
        {
            MiniProfiler.Start();
        }
        protected void Application_EndRequest()
        {
            MiniProfiler.Stop();
        }
    }    
}